package leetcode.day;

import java.util.*;

// 119. 杨辉三角 II
public class GetRow {
    public static void main(String[] args) {

    }

    public List<Integer> getRow(int rowIndex) {
        List<List<Integer>> res = new ArrayList<>();
        for (int i = 0; i <= rowIndex; i++) {
            List<Integer> row = new ArrayList<>();
            for (int j = 0; j <= i; j++) {
                if (j == 0 || j == i) {
                    row.add(1);
                } else {
                    row.add(res.get(i - 1).get(j) + res.get(i - 1).get(j - 1));
                }
            }
            res.add(row);
        }
        return res.get(rowIndex);
    }

    // 优化--使用滚动数组的思想,每计算出一行就赋值出去
    public List<Integer> getRow2(int rowIndex) {
        List<Integer> res = new ArrayList<>();
        for (int i = 0; i <= rowIndex; i++) {
            List<Integer> row = new ArrayList<>();
            for (int j = 0; j <= i; j++) {
                if (j==0||j==i){
                    row.add(1);
                }else {
                    row.add(res.get(j-1)+res.get(j));
                }
            }
            res = row;
        }
        return res;
    }
}
